Embodiments of the present invention relate generally to electronic communications. More particularly embodiments of the present invention relate to providing control of a media exchange within a communication session.
Various methods and systems have been established for providing control of a call or other electronic communication and control of a dialog within that call, such as provided by an Interactive Voice Response (IVR) system for example. Furthermore, different standards and proprietary programming models are being established to support description of call control, description of signaling, and description of dialog systems. For example, dialogs can be described with Voice eXtensible Markup Language (Voice XML or VXML), Speech Application Language Tags (SALT), etc. Call control can be achieved with Parlay X or other high level Application Program Interfaces (APIs) and/or Call Control XML (CCXML). Functions for implementing call control can be realized in Session Initiation Protocol (SIP), e.g., SIP Servlet container as described in Java Specification Request (JSR) 116, Parlay or IN. Signaling may be done in SIP, H323, IN, Parlay Call control, IN, etc. Public Branch eXchanges (PBXes) and IP PBXes may also perform call control functions.
Voice gateways (e.g. VoiceXML browsers) and CCXML browsers are focused on providing IVR systems with PBX functions or switches and embedded client implementation (for VoiceXML). This model works well for “IVR Models” or initial call routing models where VoiceXML and CCXML are supported by the gateway (integrated) or between the gateway and the client and SIP or another supporting protocol is solely used to implement the signaling part or the interaction between the two. In such a case, the call controller simply routes the incoming call to the appropriate dialog server.
However, this model does not work very well where application logic runs in a separate server like a SIP servlet container, J2EE (with high level call control APIs), Parlay, etc. and provides some functionality other than solely providing initial call control/routing and IVR functions like, for example, driving other applications as part of the call processing before or after the dialog. For example, VoiceXML today explicitly mixes dialog and call control while CCXML limits its usefulness to switch functions. Furthermore, combination of VoiceXML and CCXML is not formalized other than as an XML modularization exercise. Today, there are no clear ways on how converged applications (i.e. those mixing web and call control paradigms) can be built while being call control centric, i.e., written as a web application that drives call control flows. Hence, there is a need for improved methods and systems for controlling a media exchange such as a voice dialog within a communication session.